package org.db.util;

import java.awt.Desktop;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class PDF {

	/**
	 * Öffnet PDF Datei mit dem im System registrierten Standard PDF Reader.
	 * 
	 * @param file
	 */
	public static void openPDF(InputStream pdfFile) {
		try {
			// da das Öffen von Dateien, die sich in einem jar archiv befinden
			// nicht funktioniert,
			// wird eine temporäre Datei erstellt, dorthin die Daten kopiert und
			// diese dann geöffnet
			File tmp = File.createTempFile("Handbuch", ".pdf");
			System.out.println(tmp.exists());
			tmp.deleteOnExit();
			copy(pdfFile, tmp);
			Desktop.getDesktop().open(tmp);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/*
	 * Datei kopieren
	 */
	private static void copy(InputStream source, File target)
			throws FileNotFoundException {
		OutputStream fos = new FileOutputStream(target);
		try {
			byte buffer[] = new byte[0xffff];
			int nbytes;

			while ((nbytes = source.read(buffer)) != -1)
				fos.write(buffer, 0, nbytes);
		} catch (IOException e) {
			System.err.println(e);
		} finally {
			if (source != null)
				try {
					source.close();
				} catch (IOException e) {
				}

			try {
				if (fos != null)
					fos.close();
			} catch (IOException e) {
			}
		}

	}

}
